If you read my last article then you know a little bit about what I'm toying around with on the LLM side, if not, you can read it here - Building a Rag System. Currently I'm still in the learning phase, and it has been totally fascinating so far. There's a few things I know about myself - I'm incredibly curious, I'm a slow learner, I'm incredibly persistent.
But you saw number two there right? I'm a slow learner. I know that about myself, and that means I take my time to really go deep into something to make sure I really understand it. And with RAG, I know I'm not there yet, it's going to take more time.
As I continue to learn, I'm finding a new bifurcation taking place in the RAG world, a shift from what is now known as "Traditional RAG" to "Agentic RAG" - here's the TLDR on the differences.
Traditional RAG is the RAG we all know and love. I'll start with traditional RAG. One of the best analogies I've heard used about traditional RAG is to think of a librarian, pulling books for someone based on what they are looking for. It's a fairly straightforward, linear process, they get a request for a book (or knowledge in a book), i.e. a prompt, get the information, which in LLM terms usually means pulling from a knowledge base using a vector search engine, and then returns the response.
Agentic RAG goes a step further and solves a pretty well known problem with traditional RAG. Here's the problem that traditional RAG can have. If the question being asked requires multiple steps to answer, or might benefit from a web search rather than just performing a vector search of the knowledge base, it falls short and well - doesn't do a great job.
This is where agentic RAG comes in. It can go a step further. So let's go back to the librarian example I gave above. I make a request for a book (or knowledge in a book), the librarian now can do things that a human would do, if the book isn't available, they can search for a similar one, if the exact answer I'm looking for isn't there, it can think about where it could find it. At a high-level, agentic RAG introduces agentic behaviors at each stage of RAG, which gets much closer to simulating what a human would do vs. traditional RAG which really much more closely aligns to what a static knowledge base can provide.
Of course, this is an oversimplification of both of these topics, and like I said above, I'm still learning, and I'm a slow learner...but I wanted to share where my journey into RAG has taken me. As for how this applies to my own project, I can see agentic RAG making a big difference in the accuracy of my results since YC companies are constantly changing in many ways, from how much money they've raised to who they've hired, even pivoting to doing something else. I want my system not just to have the information about a YC company at a single point in time, I want it to keep up with changes and know when to go to an API to cross-reference and make sure it has the lastest-and-greatest.
Okay, it's Saturday morning and here I am writing about RAG. It's time to go skiing. Thanks for reading and have a great weekend!